Initialize user_time from DESKTOP_STARTUP_ID. (#165131, Elijah Newren)
authorMatthias Clasen <mclasen@redhat.com>
Tue, 25 Jan 2005 04:02:55 +0000 (04:02 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 25 Jan 2005 04:02:55 +0000 (04:02 +0000)
2005-01-24  Matthias Clasen  <mclasen@redhat.com>

* gdk/x11/gdkdisplay-x11.c (_gdk_windowing_set_default_display):
Initialize user_time from DESKTOP_STARTUP_ID.  (#165131,
Elijah Newren)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gdk/x11/gdkdisplay-x11.c

index fe91723936c4b8f5ac65b6cb39160e12bed8fe6e..f961bf2d118b06b9fc7156c0cb3e9d6af830dbb5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-01-24  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdkdisplay-x11.c (_gdk_windowing_set_default_display): 
+       Initialize user_time from DESKTOP_STARTUP_ID.  (#165131,
+       Elijah Newren)
+
 2005-01-24  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c: Removed leftover comments.
index fe91723936c4b8f5ac65b6cb39160e12bed8fe6e..f961bf2d118b06b9fc7156c0cb3e9d6af830dbb5 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-24  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdkdisplay-x11.c (_gdk_windowing_set_default_display): 
+       Initialize user_time from DESKTOP_STARTUP_ID.  (#165131,
+       Elijah Newren)
+
 2005-01-24  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c: Removed leftover comments.
index fe91723936c4b8f5ac65b6cb39160e12bed8fe6e..f961bf2d118b06b9fc7156c0cb3e9d6af830dbb5 100644 (file)
@@ -1,3 +1,9 @@
+2005-01-24  Matthias Clasen  <mclasen@redhat.com>
+
+       * gdk/x11/gdkdisplay-x11.c (_gdk_windowing_set_default_display): 
+       Initialize user_time from DESKTOP_STARTUP_ID.  (#165131,
+       Elijah Newren)
+
 2005-01-24  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c: Removed leftover comments.
index a046e5e6443abd9a8ec1c812e2a81fb35d8e497a..b46356bde67baad0ed3be5a0b6e3ad4d47f4ce38 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include <errno.h>
 #include <unistd.h>
 
 #include <glib.h>
@@ -842,10 +843,30 @@ _gdk_windowing_set_default_display (GdkDisplay *display)
   startup_id = g_getenv ("DESKTOP_STARTUP_ID");
   if (startup_id && *startup_id != '\0')
     {
+      gchar *time_str;
+
       if (!g_utf8_validate (startup_id, -1, NULL))
        g_warning ("DESKTOP_STARTUP_ID contains invalid UTF-8");
       else
        display_x11->startup_notification_id = g_strdup (startup_id);
+
+      /* Find the launch time from the startup_id, if it's there.  Newer spec
+       * states that the startup_id is of the form <unique>_TIME<timestamp>
+       */
+      time_str = g_strrstr (startup_id, "_TIME");
+      if (time_str != NULL)
+        {
+         gulong retval;
+          gchar *end;
+          errno = 0;
+
+          /* Skip past the "_TIME" part */
+          time_str += 5;
+
+          retval = strtoul (time_str, &end, 0);
+          if (end != time_str && errno == 0)
+            display_x11->user_time = retval;
+        }
       
       /* Clear the environment variable so it won't be inherited by
        * child processes and confuse things.